
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[paEjecutarIniciosDeLicencias]
-- <DESCRIPCION> Realizar el INICIO DE LICENCIA de un servicio partir de un Código de Cola (tbColaDeMovimientos)
-- <CONSIDERACIONES ESPECIALES>  Licencias Extraordinarias, Licencias antiguas
-- <TABLAS> tb_ServiciosAgentes, tb_SubServiciosAgentes, tb_ColaDeMovimientos, tb_PlazasDeMovimiento, tb_RelInterServivcios, tb_Movimientos, tb_Plazas, tb_Licencias
-- <PENDIENTES> Comentarios de Codigo.
-- <ACTUALIZACIONES>
--		05/09/2007  Tema de Licencia Confirmada para buscar poner como referencia 05/09/2007
--		27/09/2007 Tema IDServicioBase para buscar poner como referencia 27/09/2007
--		09/12/2008 Cambié o por Null para EntidadCertificadora en INSERT porque daba error
--  <ACTUALIZACIONES> 06 - 05 - 2009 por OTERO, Marcelo y SANES,  Jorge, Se agrego Manejo de Transacciones 
--  <ACTUALIZACIONES> 19-05-2009  OTERO, Marcelo y SANES, Jorge (Controles sobre carga de Licencias de Paro)
--  <ACTUALIZACIONES> 17-11-2009  OTERO, Marcelo y SANES, Jorge (Se arreglo nueva licencia extraordinaria con misma fecha de alta porque insertaba doble subservicio normal )
--  <ACTUALIZACIONES> 31-03-2010  OTERO, Marcelo y SANES, Jorge (Se ajustaron Insert y Update, valores guardados)
--  <ACTUALIZACIONES> 12-04-2010  OTERO, Marcelo y SANES, Jorge (Habia problemas al generar la licencia con la situacion extraordinaria asociada no la heredaba de la Licencia)


@idCola INT, 
@Norma INT = NULL,
@TipoDeLicencia INT OUTPUT,
@SubServicioDeLaNorma INT OUTPUT,
@EsForzado BIT
AS

SET NOCOUNT ON

DECLARE @Error INT 
DECLARE @Agente INT 
DECLARE @Plaza INT 
DECLARE @Fecha datetime
DECLARE @Organizacion INT 
DECLARE @REsponsable INT 
DECLARE @Fecha1 datetime
DECLARE @Fecha2 datetime
DECLARE @FechaTermino datetime
DECLARE @SitRev INT 
DECLARE @Nivel INT 
DECLARE @modalidad INT 
DECLARE @zona INT 
DECLARE @cargosalarial INT 
DECLARE @Licencia INT 
DECLARE @cantidadhoras INT 
DECLARE @movimiento INT 
DECLARE @estado INT 
DECLARE @observaciones VARCHAR(255)
DECLARE @CausaAlta INT 
DECLARE @Diagnostico VARCHAR(1000)
DECLARE @Destino INT 
DECLARE @NormaTemp INT 
DECLARE @enfermedad INT
DECLARE @NroCertificado INT 
DECLARE @fechaPrueba VARCHAR(10)
DECLARE @idsAnterior INT 
DECLARE @Confirmada VARCHAR(1)
DECLARE @Cuise INT 
DECLARE @idPlaza INT
-- Contiene el Codigo del Subservicio Anterior (de la Cola de Movimientos)
DECLARE @SubServicio INT 
DECLARE @Servicio INT 
DECLARE @NroOrden INT 
DECLARE @SituacionLaboral INT 
DECLARE @SituacionExtraordinaria INT 
DECLARE @SubServicioL INT 
DECLARE @ErrorC INT
DECLARE @FBajaSS DATETIME, @idssnormal INT , @FBajaSSNormal DATETIME, @idsNormal INT
DECLARE @FAltaSS DATETIME
DECLARE @NormaLicencia INT
DECLARE @Usuario INT
DECLARE @IdServicioBase INT 

--19-05-2009 Agregado
DECLARE @ObligacionesADescontar INT 
DECLARE @RegimenSalarialPlaza INT 
DECLARE @DescuentaObligaciones VARCHAR(1)

--17-11-2009 Agregado
DECLARE @InsertoSubServicioPorExtraordinaria INT 


-- Nombre del procedimiento almacenado de chequeo especifico
DECLARE @Procedimiento VARCHAR(50)

-- Se obtiene el Codigo de Usuario a partir del usuario NT
SELECT @Usuario = IdUsuario FROM tb_Usuarios WHERE  NTUser = USER_NAME()

--<INICIALIZACION DE VARIABLES>
SELECT @Error = 0, @ErrorC = 0


DECLARE @contador INT 
UPDATE tb_MovimientosDocentes SET contador = contador + 1, anio = YEAR(GETDATE()) WHERE idMovimiento = 1
--SELECT @contador = contador FROM tb_Movimientos WHERE idMovimiento = 1
SELECT @contador = max(normatemporal)+1 FROM tb_subserviciosagentes

--SE EXTRAEN LOS VALORES DEL MOVIMIENTO DE LA COLA 
SELECT @Agente = Agente, @Plaza = Plaza, @Fecha = Fecha, @Organizacion = Organizacion, @Responsable = Responsable, @Fecha1 = Fecha1,
	 @Fecha2 = Fecha2, @SitRev = SitRev, @Nivel = Nivel, @Modalidad = Modalidad, @Zona = Zona, @cargosalarial = cargosalarial, @licencia = licencia,
	 @cantidadhoras = cantidadhoras, @Movimiento = Movimiento, @Estado = Estado, @Observaciones = observaciones, @CausaAlta = CausaAlta, 
	 @FechaTermino = FechaTermino,@NroCertificado=NroCertificado
      FROM tb_ColaDeMovimientos 
	WHERE idCola = @idCola

-- Se obtiene la Norma del Movimiento
--INSERT tb_Normas SELECT CONVERT(VARCHAR, UltimaNorma + 1) +'-'+ CONVERT(VARCHAR, YEAR(@Fecha1)), 1, 0, NULL, GETDATE() FROM tb_Movimientos WHERE Mnemo = 'L'
--SELECT @NormaLicencia = @@IDENTITY

--UPDATE tb_Movimientos SET UltimaNorma = UltimaNorma + 1 WHERE Mnemo = 'L'

--SI EL ESTADO ES RECHAZADO, EJECUTADO O EJECUTADO FORZADO
IF @Estado = 2 OR @Estado = 4 OR @Estado = 5
	RETURN

BEGIN TRANSACTION AltaLic


SET @Confirmada = 'N'

-- VALORES DE LOS MOVIMIENTOS DE LA COLA
-- >>>>>>>OJO!!!! Aca tenemos el mismo problema de antes. Toma el subservicio que dejó la pantalla y puede no ser el anterior al que voy a insertar (((( QUE ES ESTO!!!!!! Jorge Pregunta el 19-05-2009 )))))

--19-05-2009 Cambios
SELECT @idPlaza = idPlaza, @SubServicio = Servicio, @Destino = PlazaDestino, @enfermedad = enfermedad, 
	 @Confirmada = Confirmada, @IdServicioBase = IdServicioBase, @ObligacionesADescontar = ObligacionesADescontar
        FROM tb_PlazasDeMovimiento 
	WHERE idCola = @idCola

--19-05-2009 Cambios
SELECT @Cuise = Cuise, @RegimenSalarialPlaza = RegimenSalarial FROM tb_Plazas WHERE idPlaza = @idPlaza

--19-05-2009 Agregado
SELECT @DescuentaObligaciones = DescuentaObligaciones FROM Tb_Licencias WHERE IdLicencia = @Licencia


-- DEJO, COMPLETO O INICIALIZO las ObligacionesADescontar SEGUN CORRESPONDA
IF @DescuentaObligaciones = 'S'
	BEGIN
		-- SI EL REGIMEN SALARIAL DE LA PLAZA ES 13 HORAS  --- YA ESTAN LAS OBLIGACIONES
		-- SI EL REGIMEN SALARIAL DE LA PLAZA ES 12 CARGO  --- CALCULO LOS DIAS A DESCONTAR PARA EL CARGO
		IF @RegimenSalarialPlaza = 12
			SET @ObligacionesADescontar = DATEDIFF(DAY, @Fecha1, @Fecha2) + 1
	END 
ELSE
	BEGIN
		SET @ObligacionesADescontar = 0
	END 


-- Si la licencia requiere enfermedad y no se especifica al momento de cargar NO se confirma el movimiento. Para el Resto de los casos mantiene lo que se puso en la pantalla (04-09-2007)
IF (SELECT RequiereRegEnfermedad FROM Tb_Licencias WHERE idLicencia = @Licencia) = 'S' AND (@Enfermedad IS NULL OR @Enfermedad = 0)
	SELECT @Confirmada = 'N'
ELSE 
	IF  (SELECT RequiereRegEnfermedad FROM Tb_Licencias WHERE idLicencia = @Licencia) = 'N'  AND  (SELECT SituacionLaboralAsociada FROM Tb_Licencias WHERE idLicencia = @Licencia) <> 1 AND @Fecha2 IS NULL
			SELECT @Confirmada = 'N'


--SE OBTIENEN LOS DATOS DEL SUBSERVICIO ANTERIOR QUE SE NECESITAN.
-- >>>>>>>OJO!!!! Acá usa el subservicio que tomó antes... 
SELECT @Servicio = ServicioAgente, @NroOrden = NroOrden9+1, @Modalidad = Modalidad, @Nivel = Nivel FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio

-- SI EL ID DE SUBSERVICIO NO PUDO ENCONTRAR EL SERVICIO PORQUE FUE BORRADO EL ID DE SUBSERVICIO UTILIZO EL ID DE ServicioBase --- 27/09/2007
IF @Servicio IS NULL AND @IdServicioBase IS NOT NULL
      BEGIN 
            SET @Servicio =  @IdServicioBase
            SELECT @Modalidad =  SO.Modalidad, @Nivel = SO.Nivel  FROM tb_Plazas P INNER JOIN tb_SubOrganizaciones SO ON SO.idSubOrganizacion = P.SubOrganizacion WHERE p.idPlaza = @idPlaza
      END 


--SE OBTIENEN DATOS QUE SE NECESITAN DE LA LICENCIA.
SELECT @SituacionLaboral = SituacionLaboralAsociada, @SituacionExtraordinaria = SituacionExtAsociada FROM tb_Licencias WHERE idLicencia = @Licencia



SET @InsertoSubServicioPorExtraordinaria = 0 

-- SI SE TRATA DE UNA LICENCIA EXTRAORDINARIA
IF @SituacionLaboral = 1
BEGIN
	--SI EL SUBSERVICIO ANTERIOR TIENE LA MISMA FECHA DE ALTA DE LA LICENCIA
	IF EXISTS(SELECT TOP 1 idSubServicio FROM tb_SubServiciosAgentes WHERE idSubServicio =  @SubServicio AND fechaalta = @Fecha1)
	BEGIN
		--SE BORRA EL SERVICIO
		DELETE FROM tb_subserviciosagentes WHERE idsubservicio = @subservicio
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR		
	
		-- SE INSERTA LA NUEVA LICENCIA
		-- 19-05-2009 Actualizado
		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal, ObligacionesDiasDescontados)
  		VALUES ('N', @enfermedad, NULL, 1, @Fecha1 , NULL, NULL,  @FechaTermino, @Licencia, @Modalidad, 3, @Nivel, NULL, @Norma, NULL, @NroOrden, @idPlaza, @Servicio, @SituacionExtraordinaria, @SituacionLaboral, NULL, NULL, 0, @Confirmada, @contador, @ObligacionesADescontar) -- 05/09/2007 - CAMBIO 'N' x @Confirmada

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR	

		SELECT  @IdsAnterior = @@IDENTITY

		SELECT @SubServicioL = @IdsAnterior

		--SI LA LICENCIA VIENE CON FECHA DE BAJA.
	             IF @Fecha2 IS NOT NULL
		BEGIN
			--SE AGREGA EL SUBSERVICIO NORMAL.
		 	INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
		 	FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
	 		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada)
 	 		VALUES ('N', NULL, NULL, 1, DATEADD(DAY,1,@Fecha2), NULL, NULL,  @FechaTermino, NULL, @Modalidad, 5, @Nivel, NULL, NULL, NULL, @NroOrden, @idPlaza, @Servicio, 1, 5, NULL, NULL, 0, 'N')


			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		              UPDATE tb_SubServiciosAgentes SET Baja = 'S', FechaBaja = @Fecha2  WHERE idSubServicio = @idsAnterior -- 05/09/2007 Se quito  updte sobre campo confirmada='S'

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

			-- 17-09-2009 Agregado
			SET @InsertoSubServicioPorExtraordinaria = 1

		END
		
	END
	ELSE --SI EL SUBSERVICIO ANTERIOR NO TIENE FECHA DE BAJA = FECHA ALTA DE LA LICENCIA.
	BEGIN
		-- 19-05-2009 Actualizado
	  	INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal, ObligacionesDiasDescontados)
  		VALUES ('N', NULL, NULL, 1, @Fecha1 , NULL, NULL, @FechaTermino, @Licencia, @Modalidad, 3, @Nivel, NULL, @Norma, NULL, @NroOrden, @idPlaza, @Servicio, @SituacionExtraordinaria, @SituacionLaboral, NULL, NULL, 0, @confirmada, @contador, @ObligacionesADescontar)

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		SELECT   @SubServicioL = @@IDENTITY

		SELECT @IdsAnterior = @SubServicioL

		  --Se actualizan el subservicio y servicio con las fechas de baja
  		UPDATE tb_SubServiciosAgentes SET Baja = 'S', FechaBaja = DATEADD(DAY,-1,@Fecha1) WHERE idSubServicio = @SubServicio

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

	END

	  --Se actualiza el Servicio para ligarlo al nuevo servicio que se crea
  	DECLARE @Asignatura INT
  	DECLARE @Presupuesto INT
  	DECLARE @RegimENDesigna INT
  	DECLARE @RegimenSalarial INT   
  	DECLARE @RegimenLaboral INT   
  	DECLARE @Sistema INT 
  	DECLARE @ClavePSalarial INT  
  	DECLARE @Horas INT 
  	DECLARE @Financiamiento INT 
  	DECLARE @TipoDeFuncion INT 
  	DECLARE @EstadoLiqExt INT 
  	DECLARE @ubicacionDestino INT 
	DECLARE @ServicioLigado INT 
  
  	SELECT @ubicacionDestino = idOrganizaciones FROM tb_Organizaciones WHERE cuise = (SELECT cuise FROM tb_Plazas WHERE idPlaza = @Destino)
  	SELECT @Asignatura = Asignatura, @Presupuesto = Presupuesto, @RegimENDesigna = RegimENDesignacion, @RegimenLaboral = RegimenLaboral,
  	@RegimenSalarial = RegimenSalarial, @Sistema = Sistema, @CargoSalarial = CargoSalarial, @ClavePSalarial = ClavePSalarial, @Horas = Horas,
  	@Financiamiento = Financiamiento, @TipoDeFuncion = TipoDeFuncion, @EstadoLiqExt = EstadoLiqExt, @SitRev = SituacionRevista
  	FROM tb_ServiciosAgentes
  	WHERE idServicioAgente = @Servicio  

	-- SE INSERTA EL NUEVO SERVICIO QUE ESTARA LIGADO A LA LICENCIA
  	INSERT INTO tb_ServiciosAgentes (Agente, Asignatura, Baja, CargoSalarial, CausaAlta, ClavePSalarial, EstadoLiqExt, FechaAlta, FechaBaja, FechaTermino,
		Horas, Liquida, NroDeOrden9, Presupuesto, RegimENDesignacion, RegimenLaboral, RegimenSalarial, ServicioQueSuple, Sistema, SituacionRevista,
		TipoDeServicio, TipoDeFuncion, Finalidad, Financiamiento, UbicacionOrig, NormaAlta, NormaBaja, Vacante, ServicioLigado, CausaBaja) 
  	VALUES (@Agente, @Asignatura, 'N', @CargoSalarial, 6, NULL, 1, @Fecha1, NULL, @FechaTermino, @Horas, 'S', @NroOrden,
		@Presupuesto, @RegimENDesigna, @RegimenLaboral, @RegimenSalarial, NULL, @Sistema, @SitRev, 2, 12,12, @Financiamiento,@ubicaciondestino, NULL, NULL, NULL,@Servicio, NULL)

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR

	SELECT @ServicioLigado = @@IDENTITY

	-- SE CREA LA RELACION INTER SERVICIOS ENTRE EL SERVICIO QUE CONTIENE LA LICENCIA Y EL NUEVO.
	INSERT tb_RelInterServicios (idServicio, idServicio2, tipoRelacion, Desde, Baja, Hasta, LicenciaUltSS)
	  	VALUES(@ServicioLigado, @Servicio, 8, @Fecha1, NULL, NULL, NULL)

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR
	
	-- SE CREA EL PRIMER SUBSERVICIO PARA EL NUEVO SERVICIO.
  	DECLARE @SubServicioLE INT 
  	INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  	FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  	SituacionLaboral, TramiteAlta, TramiteBaja, Zona)
  	VALUES ('N', NULL, NULL, 1, @Fecha1, NULL, NULL,  @FechaTermino, null, @Modalidad, 3, @Nivel, NULL, NULL, NULL, 1, @Destino, @ServicioLigado, @SituacionExtraordinaria, 5, 0, 0, 0)

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR

	SELECT @SubServicioLE = @@IDENTITY

  	--Si la licencia ya viene con fecha de baja
  	IF @Fecha2 IS NOT NULL 
	BEGIN
		DECLARE @ServicioL INT 

		-- 17-09-2009 Agregado para que no inserte otro subservicio normal 
		IF @InsertoSubServicioPorExtraordinaria = 0

			BEGIN 
				-- SE AGREGA UN PERIODO NORMAL LUEGO DE LA LICENCIA
				INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado, 
				FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, 
				SituacionExtraordinaria, SituacionLaboral, TramiteAlta, TramiteBaja, Zona) -- 05/09/2007 Se quito Update de campo Confirmada
				VALUES ('N', NULL,NULL,1, DATEADD(DAY,1,@Fecha2), NULL, NULL, NULL, NULL, @Modalidad, 5,@Nivel, NULL, NULL,0, @NroOrden, @idPlaza, @Servicio, 1, 5, 0, 0,0) -- 05/09/2007 se quito  'S' -- 09/12/2008 se cambio 0 por NULL
		
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
		
			END 
		
		-- SE BAJA EL SUBSERVICIO CON LICENCIA LE
		UPDATE tb_SubServiciosAgentes SET baja = 'S', fechabaja = @fecha2, confirmada=@Confirmada WHERE idSubServicio = @SubServicioLE   --- 05/09/2007 - Se cambio 'S' x @Confirmada

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		-- SE BAJA EL NUEVO SERVICIO
		UPDATE tb_ServiciosAgentes SET baja = 'S', fechabaja = @fecha2 WHERE idServicioAgente = @ServicioLigado

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		-- SE BAJA EL SUBSERVICIO DEL SERVICIO NUEVO
		UPDATE tb_SubServiciosAgentes SET baja = 'S', fechabaja = @fecha2, confirmada=@Confirmada  WHERE idSubServicio = @SubServicioL -- 05/09/2007 - Se cambio 'S' x @Confirmada
		
		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR		

		SELECT @ServicioL = ServicioAgente FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicioL
	END

	---------  05/09/2007 ---- analizar si se debe guardar IDServicioBase en la tabla	
 	UPDATE tb_PlazasDeMovimiento SET servicio = @SubServicioL WHERE idcola = @idcola 

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR

  	UPDATE tb_Plazas SET ultimodocente = @Agente WHERE idPlaza = @Destino

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR

END
ELSE 
BEGIN
	-- SE VERIFICA SI LA LICENCIA QUE SE DESEA PASAR ES HISTORICA.
	IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE @Fecha1 >= FechaAlta AND Baja = 'S' AND FechaBaja >= @Fecha2 AND ServicioAgente = @Servicio) 
	BEGIN
		DECLARE @F1 DATETIME
		DECLARE @F2 DATETIME
		DECLARE @idss INT 
		DECLARE @CodEnf_A INT 
		DECLARE @EntidadCertificadora_A INT 
		DECLARE @EstadoLiqExt_A INT 
		DECLARE @FechaCertificado_A DATETIME
		DECLARE @FechaTermino_A DATETIME
		DECLARE @Licencia_A INT 
		DECLARE @Modalidad_A INT 
		DECLARE @Movimiento_A INT 
		DECLARE @Nivel_A INT 
		DECLARE @NroCertificado_A INT 
		DECLARE @Plaza_A INT 
		DECLARE @SituacionExtraordinaria_A INT 
		DECLARE @SituacionLaboral_A INT 
		DECLARE @zona_A INT 
		DECLARE @NroOrden_A INT 
		DECLARE @idss2 INT 

		SELECT @subservicio = idSubservicio FROM tb_subserviciosagentes WHERE servicioagente = @servicio AND FechaAlta <= @Fecha1 AND FechaBaja >= @Fecha2
		SELECT @idss2 = @SubServicio

		-- SE EXTRAEN TODOS LOS ATRIBUTOS NECESARIOS DEL SUBSERVICIO QUE CONTIENE LA LICENCIA
		SELECT @F1 = FechaAlta, @F2 = FechaBaja, @idss = idsubServicio, @CodEnf_A = CodEnfermedad,  @EntidadCertificadora_A = EntidadCertificadora,
		@EstadoLiqExt_A = EstadoLiqExt, @FechaCertificado_A = FechaCertificado, @FechaTermino_A = FechaTermino, @Licencia_A = Licencia, 
		@Modalidad_A = Modalidad, @Movimiento_A = Movimiento, @Nivel_A = Nivel, @NroCertificado_A = NroCertificado, @Plaza_A = Plaza,
		@SituacionExtraordinaria_A = SituacionExtraordinaria, @SituacionLaboral_A = SituacionLaboral, @zona_A = Zona, @NroOrden_A = NroOrden9
		FROM 	tb_SubServiciosAgentes WHERE idSubServicio = @idss2

		SELECT @NroOrden_A = MAX(NroOrden9)+1 FROM tb_SubServiciosAgentes WHERE ServicioAgente = @Servicio
		SELECT @Enfermedad = Enfermedad FROM tb_PlazasDeMovimiento WHERE idCola = @idCola

		-- SE INSERTA LA NUEVA LICENCIA
		-- 19-05-2009 Actualizado
 		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal, ObligacionesDiasDescontados)
  		VALUES ('S', @enfermedad, NULL, 1, @Fecha1 , @Fecha2, NULL,  @FechaTermino, @Licencia, @Modalidad, 3, @Nivel, NULL, @Norma, @NroCertificado, @NroOrden_A+1, @idPlaza, @Servicio, @SituacionExtraordinaria_A, @SituacionLaboral, NULL, NULL, 0, @confirmada, @contador, @ObligacionesADescontar)
		--PRINT 'INSERT 1. ESTE NO DEBE IR'  

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		SELECT @IdsAnterior = @@IDENTITY

		-- SI LA LICENCIA TIENE MISMA FECHA DE ALTA Y BAJA QUE EL SUBSERVIVIO QUE LA CONTIENE
		IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio AND FechaAlta = @Fecha1 AND FechaBaja = @Fecha2)
			BEGIN 
				-- SE ELIMINA EL SUBSERVICIO QUE LA CONTIENE
				DELETE FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
			END 

		 -- SI LA LICENCIA TIENE LA MISMA FECHA DE ALTA PERO SU FECHA DE BAJA ES MENOR QUE EL SUBSDRVICIO QUE LA CONTIENE
		IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio AND FechaAlta = @Fecha1 AND FechaBaja > @Fecha2)
		BEGIN
			
			SELECT @FBajaSS = FechaBaja, @IdsNormal = Servicioagente FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio

			-- SE ELIMINA EL SUBSDRVICIO QUE CONTIENE LA LICENCIA
			DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

			--SE CONTROLA SI EL SUBSERVICIO SIGUIENTE TIENE SITUACION LABORAL NORMAL (LA SITUACION EXTRAORDINARIA PUEDE SER CUALQUIERA DENTRO DEL SERVICIO)
			IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, -1, FechaAlta) = @Fecha2 AND SituacionLaboral = 5 )
			BEGIN
				-- SE OBTIENEN LOS DATOS NECESARIOS DEL PROXIMO SUBSERVICIO (QUE ES NORMAL)
				SELECT @IdssNormal = IdSubServicio, @Fecha2 = FechaBaja FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, -1, FechaAlta) = @Fecha2 AND SituacionLaboral = 5
				-- SE ELIMINA EL SUBSERVICIO NORMAL QUE CONTINUA
				DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @IdssNormal

				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR
			END

			-- SE INSERTA EL SUBSERVICIO NORMAL
	  		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada)
  			VALUES ('S', @CodEnf_A, @EntidadCertificadora_A, 1, DATEADD(DAY,1,@Fecha2) , @F2, @FechaCertificado_A, @F2, @Licencia_A, @Modalidad_A, 5, @Nivel_A, NULL, NULL, NULL, @NroOrden_A+2, @Plaza_A, @Servicio, @SituacionExtraordinaria, @SituacionLaboral_A, NULL, NULL, 0, @Confirmada)  -- 05/09/2007 - Se cambio 'S' x @Confirmada OJO

			--PRINT 'INSERT 2. ESTE NO DEBE IR'  

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		END	

		-- LA LICENCIA TIENE FECHA DE ALTA MAYOR Y FECHA DE BAJA IGUAL AL SUBSERVICIO QUE LA CONTIENE.
		IF EXISTS(SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio AND @Fecha1 > FechaAlta AND @Fecha2 = FechaBaja)
		BEGIN
	
			SELECT @FAltaSS = FechaAlta, @IdsNormal = Servicioagente FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio	

			-- SE ELIMINA EL SUBSERVICIO QUE CONTIENE LA LICENCIA
			DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
			
			-- SE CONTROLA SI EL SUBSERVICIO ANTERIOR TIENE SITUACION LABORAL NORMAL (LA SITUACION EXTRAORDINARIA PUEDE SER CUALQUIERA DENTRO DEL SERVICIO)
			IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, 1, FechaBaja) = @Fecha1 AND SituacionLaboral = 5 )
			BEGIN
				-- SE OBTIENEN LOS DATOS NECESARIOS DEL PROXIMO SUBSERVICIO (QUE ES NORMAL)
				SELECT @IdssNormal = IdSubServicio, @FAltaSS = FechaAlta FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, 1, FechaBaja) = @Fecha1 AND SituacionLaboral = 5
				-- SE ELIMINA EL SUBSERVICIO NORMAL ANTERIOR
				DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @IdssNormal
	
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR

			END

			-- SE INSERTA EL SUBSERVICIO NORMAL
	  		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada)
  			VALUES ('S', @CodEnf_A, @EntidadCertificadora_A, 1, @FAltaSS, DATEADD(DAY,-1, @Fecha1), @FechaCertificado_A, @F2, @Licencia_A, @Modalidad_A, 5, @Nivel_A, NULL, NULL, NULL, @NroOrden_A+2, @Plaza_A, @Servicio, @SituacionExtraordinaria, @SituacionLaboral_A, NULL, NULL, 0, @Confirmada)  -- 05/09/2007 - Se cambio 'S' x @Confirmada OJO
			--PRINT 'INSERT 3. ESTE NO DEBE IR'  

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		END
	
		-- LA LICENCIA NO TIENE NINGUNA DE LAS FECHAS IGUALES A LA DEL SUBSERVICIO QUE LA CONTIENE
		IF EXISTS(SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio AND @Fecha1 > FechaAlta AND @Fecha2 < FechaBaja)
		BEGIN
			SELECT @FBajaSS = FechaBaja, @IdsNormal = Servicioagente FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio


			--SE CONTROLA SI EL SUBSERVICIO SIGUIENTE TIENE SITUACION LABORAL NORMAL (LA SITUACION EXTRAORDINARIA PUEDE SER CUALQUIERA DENTRO DEL SERVICIO)
			IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, -1, FechaAlta) = @Fecha2 AND SituacionLaboral = 5 )
			BEGIN
				-- SE OBTIENEN LOS DATOS NECESARIOS DEL PROXIMO SUBSERVICIO (QUE ES NORMAL)
				SELECT @IdssNormal = IdSubServicio, @Fecha2 = FechaBaja FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, -1, FechaAlta) = @Fecha2 AND SituacionLaboral = 5
				-- SE ELIMINA EL SUBSERVICIO NORMAL QUE CONTINUA
				DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @IdssNormal
	
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR

			END

			-- SE INSERTA EL SUBSERVICIO NORMAL
	  		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada)
  			VALUES ('S', @CodEnf_A, @EntidadCertificadora_A, 1, DATEADD(DAY,1,@Fecha2) , @F2, @FechaCertificado_A, @F2, @Licencia_A, @Modalidad_A, 5, @Nivel_A, NULL, NULL, NULL, @NroOrden_A+2, @Plaza_A, @Servicio, @SituacionExtraordinaria, @SituacionLaboral_A, NULL, NULL, 0, @Confirmada)  -- 05/09/2007 - Se cambio 'S' x @Confirmada OJO
			--PRINT 'INSERT 4. ESTE NO DEBE IR'  
			
			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

			SELECT @FAltaSS = FechaAlta, @IdsNormal = Servicioagente FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio	

			-- SE ELIMINA EL SUBSERVICIO QUE CONTIENE LA LICENCIA
			DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @SubServicio

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
			
			-- SE CONTROLA SI EL SUBSERVICIO ANTERIOR TIENE SITUACION LABORAL NORMAL (LA SITUACION EXTRAORDINARIA PUEDE SER CUALQUIERA DENTRO DEL SERVICIO)
			IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, 1, FechaBaja) = @Fecha1 AND SituacionLaboral = 5 )
			BEGIN
				-- SE OBTIENEN LOS DATOS NECESARIOS DEL PROXIMO SUBSERVICIO (QUE ES NORMAL)
				SELECT @IdssNormal = IdSubServicio, @FAltaSS = FechaAlta FROM tb_SubServiciosAgentes WHERE ServicioAgente = @IdsNormal AND DATEADD(DAY, 1, FechaBaja) = @F1 AND SituacionLaboral = 5
				
				-- SE ELIMINA EL SUBSERVICIO NORMAL ANTERIOR
				DELETE FROM tb_SubServiciosAgentes WHERE IdSubServicio = @IdssNormal
				SELECT @Error = @@Error
				IF @Error <> 0
			    		GOTO SALIR

			END

			-- SE INSERTA EL SUBSERVICIO NORMAL
	  		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  			FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  			SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada)
  			VALUES ('S', @CodEnf_A, @EntidadCertificadora_A, 1, @FAltaSS, DATEADD(DAY,-1, @Fecha1), @FechaCertificado_A, @F2, @Licencia_A, @Modalidad_A, 5, @Nivel_A, NULL, NULL, NULL, @NroOrden_A+2, @Plaza_A, @Servicio, @SituacionExtraordinaria, @SituacionLaboral_A, NULL, NULL, 0, @Confirmada)  -- 05/09/2007 - Se cambio 'S' x @Confirmada OJO
			--PRINT 'INSERT 5. ESTE NO DEBE IR'  

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR
			
		END

		IF EXISTS (SELECT top 1 idSubServicio FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio AND FechaAlta < @Fecha1) 
		BEGIN
			UPDATE tb_SubServiciosAgentes SET FechaBaja  = DATEADD(DAY,-1,@Fecha1) WHERE idSubServicio = @SubServicio

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		END
  
END
ELSE BEGIN -- SE TRATA DE UNA LICENCIA ACTUAL

	IF @fecha1 = (SELECT fechaalta FROM tb_SubServiciosAgentes WHERE idSubServicio =  @SubServicio)
	BEGIN
		SELECT @SituacionExtraordinaria = SituacionExtraordinaria FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio
		-- Borro el SubServicio. Porque que coincide con la fecha de alta de la licencia que se quiere INSERTar...
		DELETE FROM tb_subserviciosagentes WHERE idsubservicio = @subservicio

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		-- 19-05-2009 Actualizado
		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal, ObligacionesDiasDescontados)
  		VALUES ('N', @enfermedad, null, 1, @Fecha1 , null, null,  @FechaTermino, @Licencia, @Modalidad, 3, @Nivel, null, @Norma, null, @NroOrden, @idPlaza, @Servicio, @SituacionExtraordinaria, @SituacionLaboral, null, null, 0, @Confirmada, @contador, @ObligacionesADescontar)  -- 05/09/2007 Cambio 'N' x @Confirmada

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

		SELECT @idsAnterior = @@Identity  



	             IF @Fecha2 IS NOT NULL
		BEGIN
	 		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
	 		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
	 		SituacionLaboral, TramiteAlta, TramiteBaja, Zona) -- 05/09/2007 - Se quito Update de campo Confirmada
 	 		VALUES ('N', null, null, 1, dateadd(day,1,@Fecha2), null, null,  @FechaTermino, null, @Modalidad, 5, @Nivel, null, null, null, @NroOrden, @idPlaza, @Servicio, 1, 5, null, null, 0) -- 05/09/2007 - Se quito 'N' de Confirmada

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

	              	UPDATE tb_SubServiciosAgentes SET Baja = 'S', FechaBaja = @Fecha2  WHERE idSubServicio = @idsAnterior -- 05/09/2007 - Se quito Update de campo Confirmada  confirmada='S'

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

		END
	END
	ELSE
	BEGIN

		-- Actualizado 12 y 13/04/2010
		DECLARE @FechaAltaServicio_SE DATETIME 

		SELECT @FechaAltaServicio_SE = S.FechaAlta  FROM tb_ServiciosAgentes s WHERE s.idServicioAgente = @Servicio 

		IF EXISTS(SELECT IdServicio FROM tb_RelInterservicios  WHERE idServicio = @Servicio AND TipoRelacion = 8 AND Desde = @FechaAltaServicio_SE)
			SELECT @SituacionExtraordinaria = SituacionExtraordinaria FROM tb_SubServiciosAgentes WHERE idSubServicio = @SubServicio
		ELSE
			SELECT  @SituacionExtraordinaria = SituacionExtAsociada FROM tb_Licencias WHERE idLicencia = @Licencia

		-- Fin Actualizacion 12 y 13/04/2010
	
		-- 19-05-2009 Actualizado
  		INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado,
  		FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
  		SituacionLaboral, TramiteAlta, TramiteBaja, Zona, confirmada, NormaTemporal, ObligacionesDiasDescontados)
  		VALUES ('N', @enfermedad, null, 1, @Fecha1 , null, null,  @FechaTermino, @Licencia, @Modalidad, 3, @Nivel, null, @Norma, null, @NroOrden, @idPlaza, @Servicio, @SituacionExtraordinaria, @SituacionLaboral, null, null, 0, @confirmada, @contador, @ObligacionesADescontar)

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR
 
		SELECT @idsAnterior = @@IDENTITY
  	
		UPDATE tb_SubServiciosAgentes SET Baja = 'S', FechaBaja = dateadd(day,-1,@Fecha1) WHERE idSubServicio = @SubServicio --SE MODIFICA LA FECHA DE BAJA DEL SUBSERVICIO

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR

  		IF @Fecha2 is not null
   		BEGIN

			IF EXISTS(SELECT top 1 idservicio FROM tb_RelinterServicios WHERE IdServicio = @Servicio)
				SELECT @SituacionExtraordinaria = SituacionExtraordinaria FROM tb_ServiciosAgentes, tb_RelInterServicios, tb_SubServiciosAgentes SS WHERE IdServicioagente = IdServicio2 AND IdServicioAgente = Servicioagente AND idServicio = @Servicio AND SS.FechaBaja Is Null AND SS.SituacionExtraordinaria <> 1
			ELSE
				SELECT @SituacionExtraordinaria = 1

			INSERT INTO tb_SubServiciosAgentes (Baja, CodEnfermedad, EntidadCertificadora, EstadoLiqExt, FechaAlta, FechaBaja, FechaCertificado, FechaTermino, Licencia, Modalidad, Movimiento, Nivel, NormaFin, NormaInicio, NroCertificado, NroOrden9, Plaza, ServicioAgente, SituacionExtraordinaria,
	 		SituacionLaboral, TramiteAlta, TramiteBaja, Zona) -- 05/09/2007 - Se quito Update de Campo Confirmada
 	 		VALUES ('N', null, null, 1, dateadd(day,1,@Fecha2), null, null,  @FechaTermino, null, @Modalidad, 5, @Nivel, null, null, null, @NroOrden, @idPlaza, @Servicio, @SituacionExtraordinaria, 5, null, null, 0) -- 05/09/2007 - Se quito 'N' como valor de Confirmada

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

			UPDATE tb_SubServiciosAgentes SET Baja = 'S', FechaBaja = @Fecha2  WHERE idSubServicio = @idsAnterior -- 05/09/2007 - Se quito Update de campo Confirmada confirmada='S'

			SELECT @Error = @@Error
			IF @Error <> 0
		    		GOTO SALIR

         		END
	END

END

END

  --Actualizo el estado de la cola de movimentos en Ejecutado
UPDATE tb_ColaDeMovimientos SET Estado = CASE WHEN @EsForzado = 0 THEN 4 ELSE 5 END, NTUserEjecutor = SYSTEM_USER, FechaEjecucion = GETDATE()  WHERE idCola = @idCola

SELECT @Error = @@Error
IF @Error <> 0
		GOTO SALIR


IF (SELECT SituacionLaboralAsociada FROM tb_Licencias WHERE idLicencia = @Licencia) <> 1
	BEGIN
		UPDATE tb_PlazasDeMovimiento SET servicio = @idsAnterior WHERE idCola = @idCola

		SELECT @Error = @@Error
		IF @Error <> 0
	    		GOTO SALIR
	END

--INER JION con CARGOS y usar regimensalaria de CARGOS
IF EXISTS(SELECT top 1 idSubServicio FROM tb_SubserviciosAgentes ss, tb_serviciosagentes sa,tb_cargosSalariales cs, tb_Plazas p WHERE cs.idCargo = sa.cargosalarial  AND ss.servicioagente = sa.idservicioagente AND ss.fechaalta = @fecha1 AND ss.licencia = @licencia AND @agente = sa.agente AND ss.idSubServicio <> @idsAnterior AND idPlaza = Plaza AND cuise = @Cuise AND cs.Regimensalarial=13) 
BEGIN
	DECLARE @Cuise2 INT 
	SELECT @Cuise2 = cuise FROM tb_Organizaciones WHERE idOrganizaciones = @Organizacion
	SELECT DISTINCT @normatemp = normatemporal FROM tb_cargossalariales cs,tb_subserviciosagentes ss, tb_serviciosagentes sa, tb_Plazas p WHERE cs.idCargo=sa.cargosalarial AND ss.servicioagente = sa.idservicioagente AND p.idPlaza = plaza AND ss.fechaalta = @fecha1 AND ss.licencia = @licencia AND @agente = sa.agente AND ss.idSubServicio <> @idsAnterior AND cuise = @Cuise AND cs.RegimenSalarial  = 13
	UPDATE tb_SubserviciosAgentes SET normatemporal = @normatemp WHERE idsubservicio = @idsAnterior

	SELECT @Error = @@Error
	IF @Error <> 0
    		GOTO SALIR

END

SELECT @SubServicioDeLaNorma = @IdsAnterior
SELECT @TipoDeLicencia =  @Licencia



SALIR: 

IF @Error  = 0
	COMMIT TRANSACTION AltaLic
ELSE
	ROLLBACK TRANSACTION AltaLic
GO

GRANT EXECUTE ON  [dbo].[paEjecutarIniciosDeLicencias] TO [PersonalDocente]
GO
